fix(browser): avoid attachment menu coordinate clicks - #431
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs real behavior proof before merge. Reviewed September 1, 2026, 9:59 PM ET / September 2, 2026, 01:59 UTC. ClawSweeper reviewWhat this changesThe PR replaces coordinate-based ChatGPT attachment-menu and attachment-send clicks with exact controls, keyboard activation, and page-identity guards. Regression provenancePossible regression — probable (reviewed change; failure trace). No predecessor PR is attributed. Merge readiness⛔ Blocked until stronger real behavior proof is added - 3 items remain Keep open: the source change resolves the prior final-dispatch finding, but the supplied signed-in proof names an earlier head rather than the current head, so this exact branch still needs real behavior evidence before merge. Priority: P1 Review scores
Verification
How this fits togetherOracle’s browser mode drives a signed-in ChatGPT composer to upload files and submit consultations. This change controls attachment preparation and final send steps before a ChatGPT conversation turn is committed. flowchart LR
A[Oracle browser consultation] --> B[Capture Chat page identity]
B --> C[Open exact attachment menu]
C --> D[Upload and verify files]
D --> E[Recheck page identity]
E --> F[Activate exact send button]
F --> G[Committed ChatGPT turn]
Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Add a redacted signed-in trace from the current head showing one attachment committed to the intended Chat conversation and a delayed Work or conversation navigation rejected before any send input. Do we have a high-confidence way to reproduce the issue? Yes: current source and focused coverage reproduce the delayed-navigation condition at the final attachment dispatch boundary, though this review did not execute the signed-in browser path. Is this the best way to solve the issue? Yes in design: preserving identity and rechecking it directly before the exact keyboard send is the narrowest fix for the reported misdirected activation; exact-head live proof remains required. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 40c188caa861. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (2 earlier review cycles) |
7b753df to
7d5a052
Compare
7d5a052 to
13b4d5f
Compare
Summary
+control/g/.../c/<id>routesWhy
#315 / #316 normalize ChatGPT Work to Chat during startup, but attachment upload later used broad fallback selectors plus a trusted mouse click at a computed page coordinate. On the current Work home, suggestion cards sit close to the composer.
In a sanitized live failure, an attachment-bearing Oracle run had
promptSubmitted: false; an unrelated Work suggestion became a new task about 18 seconds after the run began, and Oracle then failed one attachment-readiness timeout later. No separate browser-control call occurred in the invoking turn. The timing strongly implicates attachment-menu activation, although the exact misdirected pointer event was not captured.This patch removes that coordinate-click hazard. It targets only
#composer-plus-btn/button[data-testid="composer-plus-btn"], focuses the control, sends trusted Enter key events, and keeps only an exact-selector synthetic fallback. A post-activation guard rejects Work or unexpected conversation navigation.Validation
Exact head:
7d5a05233b0894bb551f75140fa34434e8400886(rebased onto currentmainat40c188caa861017ba48e7b496e2171317c648976).pnpm exec vitest run tests/browser/pageActions.test.ts— 101 passed, 1 skippedpnpm run lint— passedpnpm run build— passed/c/<id>and project-scoped/g/.../c/<id>routes withworkSelected: falseSigned-in browser smoke
A compiled exact-head overlay ran an Instant GPT-5.6 Sol consult with one uploaded
LICENSEfile:attachment-safety-final-smoke-20260828/c/...conversationORACLE_ATTACHMENT_SAFETY_FINAL_OKAfter restarting Codex, the installed MCP overlay was also verified through detached
consultplus a single blockingwait:oracle-mcp-attachment-restart-smokeORACLE_MCP_ATTACHMENT_RESTART_OKAn explicit navigation to an existing Work conversation also failed closed before attachment upload or prompt submission.